import { ANIMS_PATH } from "../../common/path.js";

export class Sun extends Phaser.Physics.Matter.Sprite {
    constructor(scene, x, y, direction) {
        super(scene.matter.world, x, y, "SUN0", 0);
        this.label = "sun"; // 设置标签为火球
        this.scene = scene; // 保存场景引用
        this.direction = direction; // 保存火球的移动方向
        scene.add.existing(this); // 将火球添加到场景中

        this.setVelocity(4, 4);
        this.setFrictionAir(0.1); // 设置空气摩擦力
        this.setFriction(0.1); // 设置材质摩擦力
        this.setMass(1);
        this.setCollisionCategory(0b00000010); // 定义为类别 2
        this.setCollidesWith([0b00000000]); // 不与任何类别碰撞
        const anims = ANIMS_PATH.Plants.Sun
        const frames = Array.from({ length: anims.count }, (_, i) => ({ key: `${anims.name}${i}` }));

        // 创建动画，自动生成帧
        this.anims.create({
            key: anims.name,
            frames: frames,
            frameRate: 10,
            repeat: -1
        });

        // 播放动画
        this.anims.play(anims.name);
        this.setDepth(100);
        // 设置为交互对象
        this.setInteractive();

        // 监听点击事件
        this.on('pointerup', this.handleClick, this);

        // 3秒后自动销毁
        this.scene.time.delayedCall(3000, this.destroySun, [], this);
    }

    handleClick() {
        console.log("点击了太阳！");
        this.scene.updateScore(50);
        this.destroySun();
    }

    destroySun() {
        // 在这里执行销毁前的逻辑（如果有的话）

        this.destroy();
    }
}